/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

 

#ifndef LogsModel_h
#define LogsModel_h

@interface CollectConf :NSObject

/// collectTemplateUID
@property (strong,nonatomic,nonnull)  NSString*  collectTemplateUID;

/// 采集文件名称，支持通配
@property (strong,nonatomic,nonnull)  NSString*  file;

/// filters 过滤器V1：多个词之间为or的关系
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  filters;

/// logtopicUID 日志主题UID
@property (strong,nonatomic,nonnull)  NSString*  logtopicUID;

/// 采集文件路径，支持通配
@property (strong,nonatomic,nonnull)  NSString*  path;

/// 用户 PIN
@property (strong,nonatomic,nonnull)  NSString*  pin;


-(id) initWithCollectTemplateUID:(NSString*) collectTemplateUID
    file:(NSString*)file
    filters:(NSArray<NSString*>*)filters
    logtopicUID:(NSString*)logtopicUID
    path:(NSString*)path
    pin:(NSString*)pin;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SystemLogResultData :NSObject

/// 上下文日志搜索锚点
@property (strong,nonatomic,nonnull)  NSArray<NSObject*>*  anchor;

/// 包含id, originalMsg, time字段
@property (strong,nonatomic,nonnull)  NSObject*  source;


-(id) initWithAnchor:(NSArray<NSObject*>*) anchor
    source:(NSObject*)source;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface StartShippersSpec :NSObject

/// 转储任务uuid列表
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  shipperList;


-(id) initWithShipperList:(NSArray<NSString*>*) shipperList;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TestMetricTaskSpec :NSObject

/// 聚合函数,支持 count sum max min avg
@property (strong,nonatomic,nonnull)  NSString*  aggregate;

/// 测试内容
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  content;

/// 查询字段,支持 英文字母 数字 下划线 中划线 点（中文日志原文和各产品线的key）
@property (strong,nonatomic,nonnull)  NSString*  dataField;

/// 过滤语法，可以为空
@property (strong,nonatomic,nonnull)  NSString*  filterContent;

/// 是否打开过滤
@property (strong,nonatomic,nonnull)  NSString*  filterOpen;

/// 过滤类型，只能是fulltext和 advance
@property (strong,nonatomic,nonnull)  NSString*  filterType;


-(id) initWithAggregate:(NSString*) aggregate
    content:(NSArray<NSString*>*)content
    dataField:(NSString*)dataField
    filterContent:(NSString*)filterContent
    filterOpen:(NSString*)filterOpen
    filterType:(NSString*)filterType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Field :NSObject

/// key
@property (strong,nonatomic,nonnull)  NSString*  key;

/// 字段类型
@property (strong,nonatomic,nonnull)  NSString*  type;


-(id) initWithKey:(NSString*) key
    type:(NSString*)type;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SimpleQueryItem :NSObject

/// Exclude
@property (strong,nonatomic,nonnull)  NSNumber*  exclude;

/// Keyword
@property (strong,nonatomic,nonnull)  NSString*  keyword;


-(id) initWithExclude:(NSNumber*) exclude
    keyword:(NSString*)keyword;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Entry :NSObject

/// 日志原文
@property (strong,nonatomic,nonnull)  NSString*  content;

/// 日志流标识符,不传则使用全局日志流标识符
@property (strong,nonatomic,nonnull)  NSString*  stream;

/// 标签，不传则取全局标签 map[string]string
@property (strong,nonatomic,nonnull)  NSObject*  tags;

/// 时间戳，UTC格式，最多支持到纳秒级别，不传入则取全局时间戳。如 2019-04-08T03:08:04.437670934Z、2019-04-08T03:08:04Z、2019-04-08T03:08:04.123Z
@property (strong,nonatomic,nonnull)  NSString*  timestamp;


-(id) initWithContent:(NSString*) content
    stream:(NSString*)stream
    tags:(NSObject*)tags
    timestamp:(NSString*)timestamp;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Error :NSObject

/// Code
@property (strong,nonatomic,nonnull)  NSNumber*  code;

/// Details
@property (strong,nonatomic,nonnull)  NSObject*  details;

/// Message
@property (strong,nonatomic,nonnull)  NSString*  message;

/// Status
@property (strong,nonatomic,nonnull)  NSString*  status;


-(id) initWithCode:(NSNumber*) code
    details:(NSObject*)details
    message:(NSString*)message
    status:(NSString*)status;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ResourceEnd :NSObject

/// agent 状态: 0-异常，1-正常
@property (strong,nonatomic,nonnull)  NSNumber*  agentStatus;

/// 资源名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 资源所属地域
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 资源ID
@property (strong,nonatomic,nonnull)  NSString*  resourceId;


-(id) initWithAgentStatus:(NSNumber*) agentStatus
    name:(NSString*)name
    region:(NSString*)region
    resourceId:(NSString*)resourceId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeLogdCAEnd :NSObject

/// cer 证书，hex string
@property (strong,nonatomic,nonnull)  NSString*  cer;

/// expiryDate 证书到期日
@property (strong,nonatomic,nonnull)  NSString*  expiryDate;


-(id) initWithCer:(NSString*) cer
    expiryDate:(NSString*)expiryDate;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface StopShippersSpec :NSObject

/// 转储任务uuid列表
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  shipperList;


-(id) initWithShipperList:(NSArray<NSString*>*) shipperList;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateMetricTaskSpec :NSObject

/// 自定义单位
@property (strong,nonatomic,nonnull)  NSString*  customUnit;

/// 过滤语法，可以为空
@property (strong,nonatomic,nonnull)  NSString*  filterContent;

/// 是否打开过滤
@property (strong,nonatomic,nonnull)  NSString*  filterOpen;

/// 过滤类型，只能是fulltext和 advance
@property (strong,nonatomic,nonnull)  NSString*  filterType;

/// 监控任务名称,同一日志主题下唯一，支持中文 大小写英文字母 下划线 中划线 数字，且不超过32
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 单位
@property (strong,nonatomic,nonnull)  NSString*  unit;


-(id) initWithCustomUnit:(NSString*) customUnit
    filterContent:(NSString*)filterContent
    filterOpen:(NSString*)filterOpen
    filterType:(NSString*)filterType
    name:(NSString*)name
    unit:(NSString*)unit;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Range :NSObject

/// Gt
@property (strong,nonatomic,nonnull)  NSObject*  gt;

/// Gte
@property (strong,nonatomic,nonnull)  NSObject*  gte;

/// Lt
@property (strong,nonatomic,nonnull)  NSObject*  lt;

/// Lte
@property (strong,nonatomic,nonnull)  NSObject*  lte;


-(id) initWithGt:(NSObject*) gt
    gte:(NSObject*)gte
    lt:(NSObject*)lt
    lte:(NSObject*)lte;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Erp :NSObject

/// ERP
@property (strong,nonatomic,nonnull)  NSString*  erpValue;

/// 产品线代码
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  serviceCode;


-(id) initWithErpValue:(NSString*) erpValue
    serviceCode:(NSArray<NSString*>*)serviceCode;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CollectTempalteEnd :NSObject

/// 过滤器是否启用
@property (strong,nonatomic,nonnull)  NSNumber*  filterEnabled;

/// 日志文件
@property (strong,nonatomic,nonnull)  NSString*  logFile;

/// 过滤器
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  logFilters;

/// 日志路径
@property (strong,nonatomic,nonnull)  NSString*  logPath;


-(id) initWithFilterEnabled:(NSNumber*) filterEnabled
    logFile:(NSString*)logFile
    logFilters:(NSArray<NSString*>*)logFilters
    logPath:(NSString*)logPath;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CustomLogSearchOut :NSObject

/// Code
@property (strong,nonatomic,nonnull)  NSNumber*  code;

/// Data
@property (strong,nonatomic,nonnull)  NSArray<NSObject*>*  data;

/// Message
@property (strong,nonatomic,nonnull)  NSString*  message;

/// Size
@property (strong,nonatomic,nonnull)  NSNumber*  size;

/// Total
@property (strong,nonatomic,nonnull)  NSNumber*  total;


-(id) initWithCode:(NSNumber*) code
    data:(NSArray<NSObject*>*)data
    message:(NSString*)message
    size:(NSNumber*)size
    total:(NSNumber*)total;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SystemLogContextSpec :NSObject

/// Anchor
@property (strong,nonatomic,nonnull)  NSArray<NSObject*>*  anchor;

/// AppName
@property (strong,nonatomic,nonnull)  NSString*  appName;

/// Direction
@property (strong,nonatomic,nonnull)  NSString*  direction;

/// Id
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// LineSize
@property (strong,nonatomic,nonnull)  NSNumber*  lineSize;

/// LogType
@property (strong,nonatomic,nonnull)  NSString*  logType;

/// Time
@property (strong,nonatomic,nonnull)  NSNumber*  time;


-(id) initWithAnchor:(NSArray<NSObject*>*) anchor
    appName:(NSString*)appName
    direction:(NSString*)direction
    idValue:(NSString*)idValue
    lineSize:(NSNumber*)lineSize
    logType:(NSString*)logType
    time:(NSNumber*)time;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeInstanceMetaEnd :NSObject

/// pin 机器所属pin
@property (strong,nonatomic,nonnull)  NSString*  pin;

/// tags map[string]string 冗余字段，后续随时添加
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  tags;

/// timestamp 服务器时间
@property (strong,nonatomic,nonnull)  NSString*  timestamp;


-(id) initWithPin:(NSString*) pin
    tags:(NSMutableDictionary<NSString*,NSString*>*)tags
    timestamp:(NSString*)timestamp;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TimestampRange :NSObject

/// 结束时间，单位毫秒
@property (strong,nonatomic,nonnull)  NSNumber*  end;

/// 开始时间，单位毫秒
@property (strong,nonatomic,nonnull)  NSNumber*  start;


-(id) initWithEnd:(NSNumber*) end
    start:(NSNumber*)start;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Resource :NSObject

/// 资源所属地域
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 资源ID
@property (strong,nonatomic,nonnull)  NSString*  resourceId;


-(id) initWithRegion:(NSString*) region
    resourceId:(NSString*)resourceId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DateTimeRange :NSObject

/// End
@property (strong,nonatomic,nonnull)  NSString*  end;

/// Start
@property (strong,nonatomic,nonnull)  NSString*  start;


-(id) initWithEnd:(NSString*) end
    start:(NSString*)start;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SysTemplateEnd :NSObject

/// UID
@property (strong,nonatomic,nonnull)  NSString*  uID;

/// create user
@property (strong,nonatomic,nonnull)  NSString*  createErp;

/// create date
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 是否启用
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;

/// 模板名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// serviceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// update user
@property (strong,nonatomic,nonnull)  NSString*  updateErp;

/// update date
@property (strong,nonatomic,nonnull)  NSString*  updateTime;


-(id) initWithUID:(NSString*) uID
    createErp:(NSString*)createErp
    createTime:(NSString*)createTime
    enabled:(NSNumber*)enabled
    name:(NSString*)name
    serviceCode:(NSString*)serviceCode
    updateErp:(NSString*)updateErp
    updateTime:(NSString*)updateTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface LogsetEnd :NSObject

/// UID
@property (strong,nonatomic,nonnull)  NSString*  uID;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 描述信息
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 是否存在日志主题
@property (strong,nonatomic,nonnull)  NSNumber*  hasTopic;

/// 保存周期
@property (strong,nonatomic,nonnull)  NSNumber*  lifeCycle;

/// 日志集名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 地域信息
@property (strong,nonatomic,nonnull)  NSString*  region;


-(id) initWithUID:(NSString*) uID
    createTime:(NSString*)createTime
    descriptionValue:(NSString*)descriptionValue
    hasTopic:(NSNumber*)hasTopic
    lifeCycle:(NSNumber*)lifeCycle
    name:(NSString*)name
    region:(NSString*)region;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TargetConf :NSObject

/// 目的地 配置
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSObject*>*  targetConfValue;

/// 转储目的地类型 0: oss, 目前只支持oss
@property (strong,nonatomic,nonnull)  NSNumber*  targetType;


-(id) initWithTargetConfValue:(NSMutableDictionary<NSString*,NSObject*>*) targetConfValue
    targetType:(NSNumber*)targetType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Err :NSObject

/// Code
@property (strong,nonatomic,nonnull)  NSNumber*  code;

/// Details
@property (strong,nonatomic,nonnull)  NSObject*  details;

/// Message
@property (strong,nonatomic,nonnull)  NSString*  message;

/// Status
@property (strong,nonatomic,nonnull)  NSString*  status;


-(id) initWithCode:(NSNumber*) code
    details:(NSObject*)details
    message:(NSString*)message
    status:(NSString*)status;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ShipperEnd :NSObject

/// UID
@property (strong,nonatomic,nonnull)  NSString*  uID;

/// 日志类型
@property (strong,nonatomic,nonnull)  NSString*  appName;

/// 压缩格式，为空不压缩
@property (strong,nonatomic,nonnull)  NSString*  compress;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 投递格式 json,  origin(原始日志格式), 默认origin
@property (strong,nonatomic,nonnull)  NSString*  fileFormat;

/// 投递文件大小，单位MB，支持200,300,400,500,1000
@property (strong,nonatomic,nonnull)  NSNumber*  fileSize;

/// 日志集uuid
@property (strong,nonatomic,nonnull)  NSString*  logsetUID;

/// 日志主题uuid
@property (strong,nonatomic,nonnull)  NSString*  logtopicUID;

/// 转储任务名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// pin
@property (strong,nonatomic,nonnull)  NSString*  pin;

/// 地域信息
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 日志采集资源类型
@property (strong,nonatomic,nonnull)  NSNumber*  resourceType;

/// 日志采集列表
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  resourceUIDs;

/// serviceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 日志转储任务状态，开启，停止
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 目的地 配置
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSObject*>*  targetConf;

/// 转储目的地类型 0: oss, 目前只支持oss
@property (strong,nonatomic,nonnull)  NSNumber*  targetType;

/// 投递时间间隔单位分钟，5分钟整数倍，支持5,10,15,20,30,60
@property (strong,nonatomic,nonnull)  NSNumber*  timeInterval;

/// 更新时间
@property (strong,nonatomic,nonnull)  NSString*  updateTime;


-(id) initWithUID:(NSString*) uID
    appName:(NSString*)appName
    compress:(NSString*)compress
    createTime:(NSString*)createTime
    fileFormat:(NSString*)fileFormat
    fileSize:(NSNumber*)fileSize
    logsetUID:(NSString*)logsetUID
    logtopicUID:(NSString*)logtopicUID
    name:(NSString*)name
    pin:(NSString*)pin
    region:(NSString*)region
    resourceType:(NSNumber*)resourceType
    resourceUIDs:(NSArray<NSString*>*)resourceUIDs
    serviceCode:(NSString*)serviceCode
    status:(NSNumber*)status
    targetConf:(NSMutableDictionary<NSString*,NSObject*>*)targetConf
    targetType:(NSNumber*)targetType
    timeInterval:(NSNumber*)timeInterval
    updateTime:(NSString*)updateTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SystemLogResultTrace :NSObject

/// DestIp
@property (strong,nonatomic,nonnull)  NSString*  destIp;

/// Id
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// SrcIp
@property (strong,nonatomic,nonnull)  NSString*  srcIp;

/// Timestamp
@property (strong,nonatomic,nonnull)  NSNumber*  timestamp;


-(id) initWithDestIp:(NSString*) destIp
    idValue:(NSString*)idValue
    srcIp:(NSString*)srcIp
    timestamp:(NSNumber*)timestamp;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SystemLogResultStatus :NSObject

/// Code
@property (strong,nonatomic,nonnull)  NSString*  code;


-(id) initWithCode:(NSString*) code;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SearchLogContextSpec :NSObject

/// 查询anchor,基于该值偏移进行上下文检索
@property (strong,nonatomic,nonnull)  NSArray<NSObject*>*  anchor;

/// 搜索方向,默认both,可取值:up,down,both
@property (strong,nonatomic,nonnull)  NSString*  direction;

/// 日志记录ID
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// 查看上下文行数大小，最大支持200
@property (strong,nonatomic,nonnull)  NSNumber*  lineSize;

/// 查询日志时返回的时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  time;


-(id) initWithAnchor:(NSArray<NSObject*>*) anchor
    direction:(NSString*)direction
    idValue:(NSString*)idValue
    lineSize:(NSNumber*)lineSize
    time:(NSNumber*)time;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeMetricTasksSpec :NSObject

/// 当前所在页，默认为1
   /// in: query
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;

/// 页面大小，默认为20；取值范围[1, 100]
   /// in: query
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;


-(id) initWithPageNumber:(NSNumber*) pageNumber
    pageSize:(NSNumber*)pageSize;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MetrictaskDetailEnd :NSObject

/// 聚合函数
@property (strong,nonatomic,nonnull)  NSString*  aggregate;

/// CretedTime
@property (strong,nonatomic,nonnull)  NSString*  cretedTime;

/// 开启自定义单位
@property (strong,nonatomic,nonnull)  NSString*  customUnit;

/// 查询字段
@property (strong,nonatomic,nonnull)  NSString*  dataField;

/// 过滤语法
@property (strong,nonatomic,nonnull)  NSString*  filterContent;

/// FilterOpen
@property (strong,nonatomic,nonnull)  NSString*  filterOpen;

/// 过滤类型
@property (strong,nonatomic,nonnull)  NSString*  filterType;

/// id
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// 周期
@property (strong,nonatomic,nonnull)  NSNumber*  interval;

/// 监控项名称
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控任务名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 单位
@property (strong,nonatomic,nonnull)  NSString*  unit;

/// UpdateTime
@property (strong,nonatomic,nonnull)  NSString*  updateTime;


-(id) initWithAggregate:(NSString*) aggregate
    cretedTime:(NSString*)cretedTime
    customUnit:(NSString*)customUnit
    dataField:(NSString*)dataField
    filterContent:(NSString*)filterContent
    filterOpen:(NSString*)filterOpen
    filterType:(NSString*)filterType
    idValue:(NSString*)idValue
    interval:(NSNumber*)interval
    metric:(NSString*)metric
    name:(NSString*)name
    unit:(NSString*)unit
    updateTime:(NSString*)updateTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ShipperTaskEnd :NSObject

/// UID
@property (strong,nonatomic,nonnull)  NSString*  uID;

/// 是否允许重试， true，false
@property (strong,nonatomic,nonnull)  NSNumber*  allowRetry;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 结束时间
@property (strong,nonatomic,nonnull)  NSNumber*  endTime;

/// 日志集uuid
@property (strong,nonatomic,nonnull)  NSString*  logsetUID;

/// 日志主题uuid
@property (strong,nonatomic,nonnull)  NSString*  logtopicUID;

/// 地域信息
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 日志批次任务截止时间
@property (strong,nonatomic,nonnull)  NSNumber*  shipperEndTime;

/// 日志批次任务起始时间
@property (strong,nonatomic,nonnull)  NSNumber*  shipperStartTime;

/// shipperUID
@property (strong,nonatomic,nonnull)  NSString*  shipperUID;

/// 开始时间
@property (strong,nonatomic,nonnull)  NSNumber*  startTime;

/// 该批次转储任务状态： 1 发送中 2 成功，3 失败
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 更新时间
@property (strong,nonatomic,nonnull)  NSString*  updateTime;


-(id) initWithUID:(NSString*) uID
    allowRetry:(NSNumber*)allowRetry
    createTime:(NSString*)createTime
    endTime:(NSNumber*)endTime
    logsetUID:(NSString*)logsetUID
    logtopicUID:(NSString*)logtopicUID
    region:(NSString*)region
    shipperEndTime:(NSNumber*)shipperEndTime
    shipperStartTime:(NSNumber*)shipperStartTime
    shipperUID:(NSString*)shipperUID
    startTime:(NSNumber*)startTime
    status:(NSNumber*)status
    updateTime:(NSString*)updateTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Pair :NSObject

/// key
@property (strong,nonatomic,nonnull)  NSString*  key;

/// value
@property (strong,nonatomic,nonnull)  NSString*  value;


-(id) initWithKey:(NSString*) key
    value:(NSString*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TemplateEnd :NSObject

/// UID
@property (strong,nonatomic,nonnull)  NSString*  uID;

/// 模板名称
@property (strong,nonatomic,nonnull)  NSString*  name;


-(id) initWithUID:(NSString*) uID
    name:(NSString*)name;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateMetricTaskSpec :NSObject

/// 聚合函数,支持 count sum max min avg
@property (strong,nonatomic,nonnull)  NSString*  aggregate;

/// 自定义单位
@property (strong,nonatomic,nonnull)  NSString*  customUnit;

/// 查询字段,支持 英文字母 数字 下划线 中划线 点（中文日志原文和各产品线的key）
@property (strong,nonatomic,nonnull)  NSString*  dataField;

/// 过滤语法，可以为空
@property (strong,nonatomic,nonnull)  NSString*  filterContent;

/// 是否打开过滤
@property (strong,nonatomic,nonnull)  NSString*  filterOpen;

/// 过滤类型，只能是fulltext和 advance
@property (strong,nonatomic,nonnull)  NSString*  filterType;

/// 时间周期，固定60s
@property (strong,nonatomic,nonnull)  NSNumber*  interval;

/// 监控项 , 支持大小写英文字母 下划线 数字 点，且不超过255byte（不支持中划线）
@property (strong,nonatomic,nonnull)  NSString*  metric;

/// 监控任务名称,同一个日志主题下唯一，支持中文 大小写英文字母 下划线 中划线 数字，且不超过32字符
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 单位
@property (strong,nonatomic,nonnull)  NSString*  unit;


-(id) initWithAggregate:(NSString*) aggregate
    customUnit:(NSString*)customUnit
    dataField:(NSString*)dataField
    filterContent:(NSString*)filterContent
    filterOpen:(NSString*)filterOpen
    filterType:(NSString*)filterType
    interval:(NSNumber*)interval
    metric:(NSString*)metric
    name:(NSString*)name
    unit:(NSString*)unit;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateShipperSpec :NSObject

/// 压缩格式，为空不压缩
@property (strong,nonatomic,nonnull)  NSString*  compress;

/// 投递格式 json,  origin(原始日志格式), 默认origin
@property (strong,nonatomic,nonnull)  NSString*  fileFormat;

/// 投递文件大小，单位MB，支持200,300,400,500,1000
@property (strong,nonatomic,nonnull)  NSNumber*  fileSize;

/// 转储任务名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 目的地 配置
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSObject*>*  targetConf;

/// 转储目的地类型 0: oss, 目前只支持oss
@property (strong,nonatomic,nonnull)  NSNumber*  targetType;

/// 投递时间间隔单位分钟，5分钟整数倍，支持5,10,15,20,30,60
@property (strong,nonatomic,nonnull)  NSNumber*  timeInterval;


-(id) initWithCompress:(NSString*) compress
    fileFormat:(NSString*)fileFormat
    fileSize:(NSNumber*)fileSize
    name:(NSString*)name
    targetConf:(NSMutableDictionary<NSString*,NSObject*>*)targetConf
    targetType:(NSNumber*)targetType
    timeInterval:(NSNumber*)timeInterval;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeInstanceCollectConfsEnd :NSObject

/// result
@property (strong,nonatomic,nonnull)  NSArray<CollectConf*>*  result;


-(id) initWithResult:(NSArray<CollectConf*>*) result;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SimpleQuery :NSObject

/// Items
@property (strong,nonatomic,nonnull)  NSArray<SimpleQueryItem*>*  items;

/// Opt
@property (strong,nonatomic,nonnull)  NSString*  opt;


-(id) initWithItems:(NSArray<SimpleQueryItem*>*) items
    opt:(NSString*)opt;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CollectInfoDetailEnd :NSObject

/// UID
@property (strong,nonatomic,nonnull)  NSString*  uID;

/// 日志来源，只能是 custom
@property (strong,nonatomic,nonnull)  NSString*  appCode;

/// Detail
@property (strong,nonatomic,nonnull)  CollectTempalteEnd*  detail;

/// Enabled
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;

/// 采集实例类型, 只能是 all/part
@property (strong,nonatomic,nonnull)  NSString*  resourceType;

/// 采集实例数量
@property (strong,nonatomic,nonnull)  NSNumber*  resourcesCount;

/// 产品线
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// 日志类型名称
@property (strong,nonatomic,nonnull)  NSString*  templateName;

/// 日志类型
@property (strong,nonatomic,nonnull)  NSString*  templateUID;


-(id) initWithUID:(NSString*) uID
    appCode:(NSString*)appCode
    detail:(CollectTempalteEnd*)detail
    enabled:(NSNumber*)enabled
    resourceType:(NSString*)resourceType
    resourcesCount:(NSNumber*)resourcesCount
    serviceCode:(NSString*)serviceCode
    templateName:(NSString*)templateName
    templateUID:(NSString*)templateUID;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface LogtopicDetailEnd :NSObject

/// CollectInfo
@property (strong,nonatomic,nonnull)  CollectInfoDetailEnd*  collectInfo;

/// UID
@property (strong,nonatomic,nonnull)  NSString*  uID;

/// 采集配置UID
@property (strong,nonatomic,nonnull)  NSString*  collectInfoUID;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 描述信息
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 最新日志上报时间
@property (strong,nonatomic,nonnull)  NSString*  lastRecordTime;

/// 所属日志集名称
@property (strong,nonatomic,nonnull)  NSString*  logsetName;

/// 所属日志集
@property (strong,nonatomic,nonnull)  NSString*  logsetUID;

/// 日志主题名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 地域信息
@property (strong,nonatomic,nonnull)  NSString*  region;


-(id) initWithCollectInfo:(CollectInfoDetailEnd*) collectInfo
    uID:(NSString*)uID
    collectInfoUID:(NSString*)collectInfoUID
    createTime:(NSString*)createTime
    descriptionValue:(NSString*)descriptionValue
    lastRecordTime:(NSString*)lastRecordTime
    logsetName:(NSString*)logsetName
    logsetUID:(NSString*)logsetUID
    name:(NSString*)name
    region:(NSString*)region;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SystemLogHistorySpec :NSObject

/// AppName
@property (strong,nonatomic,nonnull)  NSString*  appName;

/// 精确匹配，true 或者 false
@property (strong,nonatomic,nonnull)  NSNumber*  exactMatch;

/// Instance
@property (strong,nonatomic,nonnull)  NSString*  instance;

/// 查询关键字
@property (strong,nonatomic,nonnull)  NSString*  keyword;

/// LogType
@property (strong,nonatomic,nonnull)  NSString*  logType;

/// 排序，取值&quot;ASC&quot;或&quot;DESC&quot;，默认&quot;ASC&quot;
@property (strong,nonatomic,nonnull)  NSString*  order;

/// 页数，从1开始
@property (strong,nonatomic,nonnull)  NSNumber*  page;

/// 每页日志条数
@property (strong,nonatomic,nonnull)  NSNumber*  size;

/// Time
@property (strong,nonatomic,nonnull)  TimestampRange*  time;


-(id) initWithAppName:(NSString*) appName
    exactMatch:(NSNumber*)exactMatch
    instance:(NSString*)instance
    keyword:(NSString*)keyword
    logType:(NSString*)logType
    order:(NSString*)order
    page:(NSNumber*)page
    size:(NSNumber*)size
    time:(TimestampRange*)time;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ApiConfEnd :NSObject

/// api name
@property (strong,nonatomic,nonnull)  NSString*  apiName;

/// apiType: 1-openapi,2-http
@property (strong,nonatomic,nonnull)  NSNumber*  apiType;

/// 记录id
@property (strong,nonatomic,nonnull)  NSNumber*  idValue;

/// method: GET/POST ...
@property (strong,nonatomic,nonnull)  NSString*  method;

/// params
@property (strong,nonatomic,nonnull)  NSArray<Pair*>*  params;

/// reps
@property (strong,nonatomic,nonnull)  NSArray<Pair*>*  resp;

/// serviceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// url
@property (strong,nonatomic,nonnull)  NSString*  url;

/// version: v1
@property (strong,nonatomic,nonnull)  NSString*  version;


-(id) initWithApiName:(NSString*) apiName
    apiType:(NSNumber*)apiType
    idValue:(NSNumber*)idValue
    method:(NSString*)method
    params:(NSArray<Pair*>*)params
    resp:(NSArray<Pair*>*)resp
    serviceCode:(NSString*)serviceCode
    url:(NSString*)url
    version:(NSString*)version;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SystemLogEnd :NSObject

/// Data
@property (strong,nonatomic,nonnull)  NSArray<SystemLogResultData*>*  data;

/// Hits
@property (strong,nonatomic,nonnull)  NSNumber*  hits;

/// Size
@property (strong,nonatomic,nonnull)  NSNumber*  size;


-(id) initWithData:(NSArray<SystemLogResultData*>*) data
    hits:(NSNumber*)hits
    size:(NSNumber*)size;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Match :NSObject

/// Eq
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSArray<NSObject*>*>*  eq;

/// Not
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSArray<NSObject*>*>*  notValue;

/// Range
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,Range*>*  range;

/// Regexp
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSArray<NSString*>*>*  regexp;

/// Simple_query_string
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSString*>*  simple_query_string;

/// SimpleQuery
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,SimpleQuery*>*  simpleQuery;

/// Substring
@property (strong,nonatomic,nonnull)  NSMutableDictionary<NSString*,NSArray<NSString*>*>*  substring;


-(id) initWithEq:(NSMutableDictionary<NSString*,NSArray<NSObject*>*>*) eq
    notValue:(NSMutableDictionary<NSString*,NSArray<NSObject*>*>*)notValue
    range:(NSMutableDictionary<NSString*,Range*>*)range
    regexp:(NSMutableDictionary<NSString*,NSArray<NSString*>*>*)regexp
    simple_query_string:(NSMutableDictionary<NSString*,NSString*>*)simple_query_string
    simpleQuery:(NSMutableDictionary<NSString*,SimpleQuery*>*)simpleQuery
    substring:(NSMutableDictionary<NSString*,NSArray<NSString*>*>*)substring;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CustomLogSearchSpec :NSObject

/// AppName
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  appName;

/// From
@property (strong,nonatomic,nonnull)  NSNumber*  from;

/// LogTopicId
@property (strong,nonatomic,nonnull)  NSString*  logTopicId;

/// Match
@property (strong,nonatomic,nonnull)  NSArray<Match*>*  match;

/// RecordId
@property (strong,nonatomic,nonnull)  NSString*  recordId;

/// Resp
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  resp;

/// Size
@property (strong,nonatomic,nonnull)  NSNumber*  size;

/// Sort
@property (strong,nonatomic,nonnull)  NSString*  sort;

/// TimeRange
@property (strong,nonatomic,nonnull)  DateTimeRange*  timeRange;

/// Uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;


-(id) initWithAppName:(NSArray<NSString*>*) appName
    from:(NSNumber*)from
    logTopicId:(NSString*)logTopicId
    match:(NSArray<Match*>*)match
    recordId:(NSString*)recordId
    resp:(NSArray<NSString*>*)resp
    size:(NSNumber*)size
    sort:(NSString*)sort
    timeRange:(DateTimeRange*)timeRange
    uuid:(NSString*)uuid;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

#endif /* LogsModel_h */
